#include "CAF.h"
#include "CValue.h"
#include "CFilt.h"

class CAFSA{
    private:
        int af_num;
        std::vector<CAF> af_social;
        CValue valuer;
        CFilt filter;
        Mat frame;
        int ite_num;

    public:
        float x_best;
        float y_best;
        float z_best;
        CAFSA(int af_n, int ite, int row, int col, Mat img, float x_mi, float x_ma, float y_mi, float y_ma, float z_mi, float z_ma, int st, float vi, int tn, float df, float ds, float max_b, float max_c, float max_ba, float min_b, float min_c, float min_ba,float wei_b, float wei_c, float wei_ba);
        void follow(CAF* af);
        void swarm(CAF* af);
        void prey(CAF* af);
        void food_con(CAF* af);
        float food_con(CAF af);
        float food_con(float x, float y, float z);
        float dstc(CAF af1, CAF af2);
        void evaluate();
        void test();
        ~CAFSA(){}
};
